昨天我們學會了如何安裝資料庫,今天我們要來學如何發布地圖服務
首先要先說明:什麼是地圖服務?
地圖服務就是可以把我們現有的文字資料、Shapefile檔等發布成WMS、WMTS、WFS等,在開發WebGIS的時候可以直接使用地圖API的function根據現在的Extent去撈取資料,而不用再透過後端寫一支API撈資料後再展到圖台上
是一個方便介接與撈取資料的方式
地圖服務的發佈有很多方法,有要錢的ArcGIS Server
,也有不用錢的GeoServer
、MapServer
、QGIS Server
等,每個都各有優缺
像GeoServer是我用過算是最簡單與最容易安裝的,但相對彈性也較小
ArcGIS Server、QGIS Server安裝與使用上都相對較為複雜,對於圖層的調整就彈性許多,以上為個人想法
我自己工作上最常用ArcGIS Server,因此想找個差不多的發服務方式,就選擇了QGIS Server了
當然如果你決定使用GeoServer等其他方法,可以參考其他大神的文章,地圖服務發布後都是差不多的,可以跳過我這邊的QGIS Server的說明~
我一決定使用QGIS Server就開始後悔了,因為網路上文件相對於其他的,安裝設定技術文章少之又少,花了不少時間、開了不少VM在測試,最後寫成這幾篇文章提供大家少走一點錯路。
所以接下來我們就來開始安裝QGIS Server吧!會分成使用Apache
和IIS
發布兩種方法,此篇為Apache
注意!Apache和IIS皆為服務發布工具,請擇一使用
首先,先安裝免費的QGIS和QGIS Server軟體
可以看到有QGIS的獨立安裝版
和OSGeo4W
集合套件
OSGeo4W是用於開源GIS產品的Windows安裝軟體,它集合了許多開源套件(如:GDAL、Openlayers等)可由上述安裝檔管理。
有用過QGIS的人應該多多少少都會發現QGIS許多函式都是使用GDAL套件寫成的,開源套件的本質就代表會有許多的Open產品與功能之間相互依賴才有辦法形成一套較為完整且相容的軟體。
又舉個例子,在GIS領域中,許多的軟體都是使用Python寫成的,而windows系統上如果裝了ArcGIS、又裝了QGIS又再自己裝了Anaconda、又獨立裝了Python2和Python3,
請問你的電腦有多少個Python?
而在真正執行的到底又是哪個版本的Python?
相信除了非常了解自己電腦的運作的開發者以外,對大部分使用者來說就是個謎,遇到錯誤連為什麼發生的可能都搞不清楚
因此這就是OSGeo4W的用處,可以追蹤版本與共享需求,算是個控管的套件
下載並安裝 OSGeo4W Network Installer (64 bit)
osgeo4w-setup-x86_64.exe
qgis-ltr
和qgis-ltr-server
QGIS Server原始是搭配Apache進行網站、程式的架設,因此本篇文章先以Apache為主要介紹
下一章節會再介紹使用IIS如何發布服務之方法
但要注意的若使用本篇的方法在同一台電腦上,Apache和IIS的port要設為不同,否則會相衝
下載Apache,路徑如下:
Download VS16 Apache 2.4 Server and Modules
httpd-2.4.43-win64-VS16.zip
cd C:\App\Apache24\bin
httpd.exe -k install
C:\App\Apache24\conf\httpd.conf
,並更改以下內容Define SRVROOT "c:/APP/Apache24"
接著修改Port,80是預設的監聽埠,如果原本電腦內就有安裝IIS,80 Port會被占掉,所以要給他一個沒有被監聽的Port
修改第60行,可隨便改一個沒有被占用的Port,像8888
Listen 8888
C:\App\Apache24\bin\ApacheMonitor.exe
啟動 Apache 2.4 服務 (Start)http://127.0.0.1:<剛才設置的Port>/
,可以看到一個默認的頁面It Works!,說明伺服器已經搭建成功。http://127.0.0.1
;若剛剛設置Port為8888,則輸入http://127.0.0.1:8888
)目前已分別完成QGIS Server和Apache的安裝,接下來的步驟要讓兩者之間關聯
先下載Microsoft Visual C++ Redistributable 可轉散發套件 VC_redist.x64.exe
再下載Apache FastCGI模組,路徑如下 (拉下去,選擇mod_fcgid下的套件):
Download VS16 Apache 2.4 Server and Modulesmod_fcgid-2.3.10-win64-VS16.zip
先備著,步驟3會用到
以系統管理員身分安裝剛剛下載的Microsoft Visual C++ Redistributable
套件,安裝完成後請重新開機 (若已安裝過則不用安裝)
複製 C:\OSGeo4W64\httpd.d\httpd_qgis-ltr.conf 到 C:\APP\Apache24\conf\extra
編輯 C:\APP\Apache24\conf\httpd.conf 以下內容並將其添加到該 # Supplemental configuration
部分:
Include conf/extra/httpd_qgis-ltr.conf
引入FastCGI
模組,將剛剛下載的 mod_fcgid/mod_fcgid.so
複製到 C:\APP\Apache24\modules
重新啟動Apache看是否啟動成功
打開瀏覽器,輸入連結 http://127.0.0.1:<剛才設置的Port>/qgis-ltr/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
若返回XML結構,則為設置成功,例如:
http://127.0.0.1:8888/qgis-ltr/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
接下來給 qgis-ltr/qgis_mapserv.fcgi.exe
一個名稱,不要直接顯示.exe檔,因此在httpd.conf
第一行新增
ScriptAlias /qgisserver "c:/OSGeo4W64/apps/qgis-ltr/bin/qgis_mapserv.fcgi.exe"
重新測試網址是否可瀏覽:
http://localhost:8888/qgisserver?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
今天學會了如何安裝QGIS Server、安裝Apache和兩者之間的設定
明天會教另一種方式,使用IIS
進行QGIS Server的架設,Apache和IIS選一個使用就好了!
後天會說明如何利用QGIS Server(含Apache和IIS)以Shapefile發布服務和連結DB資料庫發布服務
如果是我的話我建議使用Apache,IIS的設定更為複雜
但如果電腦已經有灌IIS,且要使用的Port會衝到的話,那還是選IIS吧!
當然可以!這樣就直接跳過QGIS Server這幾個天的內容就可以了
對新手來說GeoServer確實還是比較容易上手,會寫QGIS Server的安裝步驟是讓想使用的人少走點冤妄路。
由於此部分都是自學而來的,若有敘述錯誤的地方還請各位大大見諒,感謝!